.showing-cloud .self-hosted-comparison,
.showing-self-hosted .cloud-comparison {
    display: none;
}

.zulip-plans-comparison {
    --color-heading-text: hsl(0deg 0% 100%);
    --color-table-text: hsl(223deg 40% 25%);
    --color-table-background: hsl(0deg 0% 100% / 80%);
    --color-table-link: hsl(210deg 94% 30%);
    --color-table-link-hover: hsl(210deg 100% 45%);
    --color-table-link-active: hsl(210deg 100% 40%);
    --color-table-link-decoration: hsl(210deg 94% 30% / 20%);
    --color-table-link-decoration-hover: hsl(210deg 100% 45% / 70%);
    --color-table-link-decoration-active: hsl(210deg 100% 40%);
    --border-radius-table: 11px;

    .icon-infinity {
        --icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' viewBox='0 0 24 24'%3e%3cpath fill='black' fill-rule='evenodd' d='M2.464 8.464A5 5 0 0 1 6 7c2.16 0 4.155 1.251 6 3.4C13.845 8.251 15.84 7 18 7a5 5 0 1 1 0 10c-2.16 0-4.155-1.251-6-3.4-1.845 2.149-3.84 3.4-6 3.4a5 5 0 0 1-3.536-8.536ZM10.731 12C8.983 9.857 7.4 9 6 9a3 3 0 1 0 0 6c1.4 0 2.983-.857 4.731-3Zm2.538 0c1.748 2.143 3.331 3 4.731 3a3 3 0 0 0 0-6c-1.4 0-2.983.857-4.731 3Z' clip-rule='evenodd'/%3e%3c/svg%3e");
    }

    .icon-check {
        --icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' viewBox='0 0 24 24'%3e%3cpath fill='black' fill-rule='evenodd' d='M20.707 5.793a1 1 0 0 1 0 1.414l-11 11a1 1 0 0 1-1.414 0l-5-5a1 1 0 1 1 1.414-1.414L9 16.086 19.293 5.793a1 1 0 0 1 1.414 0Z' clip-rule='evenodd'/%3e%3c/svg%3e");
    }

    .icon-x {
        --icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' viewBox='0 0 24 24'%3e%3cpath fill='black' d='M18.707 6.707a1 1 0 0 0-1.414-1.414L12 10.586 6.707 5.293a1 1 0 0 0-1.414 1.414L10.586 12l-5.293 5.293a1 1 0 1 0 1.414 1.414L12 13.414l5.293 5.293a1 1 0 0 0 1.414-1.414L13.414 12l5.293-5.293Z'/%3e%3c/svg%3e");
    }

    .icon-wrench {
        --icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' viewBox='0 0 24 24'%3e%3cpath fill='black' fill-rule='evenodd' d='M16.578 3.36a5.25 5.25 0 0 0-5.866 7.302.75.75 0 0 1-.153.84l-6.91 6.91a1.371 1.371 0 0 0 1.94 1.94l6.91-6.91a.75.75 0 0 1 .839-.154 5.25 5.25 0 0 0 7.301-5.866l-2.915 2.915a1.75 1.75 0 0 1-2.45 0l-.006-.005-1.605-1.606a1.75 1.75 0 0 1 0-2.45l.005-.005 2.91-2.91Zm-2.293-1.503a6.75 6.75 0 0 1 3.993.491.75.75 0 0 1 .22 1.214l-3.766 3.766a.25.25 0 0 0 0 .347l1.593 1.593a.25.25 0 0 0 .347 0L20.438 5.5a.75.75 0 0 1 1.214.221 6.75 6.75 0 0 1-8.445 9.131l-6.557 6.56a2.871 2.871 0 1 1-4.06-4.06l6.558-6.56a6.75 6.75 0 0 1 5.138-8.935Z' clip-rule='evenodd'/%3e%3c/svg%3e");
    }

    .icon {
        vertical-align: middle;
        display: inline-block;
        flex-shrink: 0;
        background-color: currentcolor;
        mask-position: center;
        mask-repeat: no-repeat;
        mask-image: var(--icon);
        width: 24px;
        height: 24px;
    }

    .icon-with-copy {
        /* Treat copy and a nearby icon as
           a unit when reflowing text for narrower
           viewports. */
        display: inline-block;
    }

    h2 {
        font-family: var(--font-ss3);
        font-weight: 450;
        font-size: 44px;
        line-height: 120%;
        text-align: center;
        margin: 64px 0 10px;
        color: var(--color-heading-text);
    }

    .h2-subheader {
        font-family: var(--font-ops);
        font-weight: 400;
        font-size: 16px;
        line-height: 145%;
        text-align: center;
        color: var(--color-heading-text);
        /* Let subheader text fill the same area as
           text in the comparison table below. */
        padding: 0 14px;

        a {
            color: inherit;
            border-bottom: 1px solid hsl(0deg 0% 100% / 50%) !important;
            transition: border 0.4s ease-out;

            &:hover {
                border-bottom: 2px solid hsl(0deg 0% 100%) !important;
                transition: none;
            }
        }
    }

    .comparison-table {
        font-family: var(--font-ss3);
        font-size: 16px;
        line-height: 18px;
        text-align: center;
        border-collapse: collapse;
        margin: 24px auto 48px;
        border-radius: var(--border-radius-table);
        color: var(--color-table-text);
        background: var(--color-table-background);
    }

    .comparison-table a {
        color: var(--color-table-link);
        text-underline-offset: 4px;
        text-decoration-thickness: 1px;
        text-decoration-color: var(--color-table-link-decoration);
    }

    .comparison-table a:hover {
        color: var(--color-table-link-hover);
        text-decoration-color: var(--color-table-link-decoration-hover);
    }

    .comparison-table a:active {
        color: var(--color-table-link-active);
        text-decoration-color: var(--color-table-link-decoration-active);
    }

    .comparison-table tr {
        transition: all 200ms ease-out;
    }

    .comparison-table tr:hover {
        background-color: hsl(0deg 0% 100% / 30%);
    }

    .comparison-table th:first-child {
        border-top-left-radius: var(--border-radius-table);
    }

    .comparison-table th:last-child {
        border-top-right-radius: var(--border-radius-table);
    }

    .comparison-table th,
    .comparison-table .subheader {
        position: sticky;
        font-weight: 700;
        color: hsl(223deg 40% 30% / 100%);
        background: hsl(209deg 41% 94%);
        transition: all 200ms ease-out;
    }

    .subheader-filler {
        background: hsl(209deg 41% 94%);
    }

    .comparison-table th {
        padding: 12px 2px 10px;
        top: 60px;
        z-index: 1;
    }

    .comparison-table td.subheader.comparison-table-feature {
        font-weight: 600;
        color: hsl(223deg 40% 30% / 80%);
        top: 60px;
        z-index: 2;
        padding-top: 8px;
        padding-bottom: 8px;
        text-transform: uppercase;
        font-size: 15px;
        letter-spacing: 0.1ch;
    }

    .comparison-table th.sticky {
        padding: 8px 2px;
        border-radius: 0;
    }

    .comparison-table td {
        padding: 8px;
        border-top: 1px solid hsl(209deg 40% 40% / 30%);
        line-height: 18px;
    }

    .comparison-table colgroup col:first-child {
        width: 340px;
    }

    .comparison-table colgroup col {
        width: 112px;
    }

    .comparison-table th.comparison-table-feature,
    .comparison-table td.comparison-table-feature {
        text-align: left;
        padding-left: 14px;
    }

    .comparison-table td.comparison-table-feature {
        color: hsl(223deg 40% 16%);
    }

    .comparison-table-feature-desc {
        font-size: 14px;
        opacity: 0.7;
        margin-top: 2px;
    }

    .comparison-value-positive {
        color: hsl(147deg 80% 29% / 100%);
    }

    .comparison-value-warning {
        color: hsl(42deg 85% 35% / 100%);
    }

    .comparison-value-negative {
        color: hsl(224deg 8% 50% / 100%);
    }

    .comparison-value-positive,
    .comparison-value-warning,
    .comparison-value-negative {
        /* Set positioning context for use
           with tooltip hovers on icons. */
        position: relative;
        /* Make non-icon text (e.g., "Billed hourly")
           less prominent than other text in the table's
           rows or columns. */
        font-size: 0.9em;
    }

    .comparison-value-positive::after,
    .comparison-value-warning::after,
    .comparison-value-negative::after {
        content: attr(data-title);
        white-space: nowrap;
        font-size: 14px;
        line-height: 14px;
        font-weight: 400;
        display: block;
        padding: 2px 4px;
        border-radius: 5px;
        background-color: hsl(208deg 43% 93%);
        /* the color of mixed hover row with bg */
        position: absolute;
        top: calc(50% + 11px);
        left: 50%;
        /* Keep tooltips over top of other elements,
           including the headers within the table. */
        z-index: 3;
        transform: translateX(-50%);
        visibility: hidden;
        opacity: 0;
        transition:
            visibility 301s linear,
            opacity 250ms ease-out;
    }

    .comparison-value-positive:hover::after,
    .comparison-value-warning:hover::after,
    .comparison-value-negative:hover::after {
        transition:
            visibility 0s linear,
            opacity 250ms ease-out;
        transition-delay: 200ms;
        visibility: visible;
        opacity: 1;
    }

    @media (width <= 940px) {
        h1 {
            font-size: 40px;
        }

        .h1-subheader {
            font-size: 16px;
        }

        h2 {
            font-size: 32px;
            margin-bottom: 4px;
        }

        .h2-subheader {
            font-size: 14px;
        }
    }

    @media (width <= 730px) {
        .comparison-table th,
        .comparison-table th.sticky {
            font-size: 14px;
            line-height: 16px;
            box-sizing: border-box;
            height: 44px;
            padding: 4px 2px;
        }

        .comparison-table td {
            font-size: 14px;
            line-height: 14px;
        }

        .comparison-table td.subheader.comparison-table-feature {
            font-size: 13px;
            line-height: 16px;
            box-sizing: border-box;
            height: 44px;
            padding-bottom: 4px;
            padding-top: 4px;
        }

        .comparison-table td.comparison-table-feature {
            font-size: 14px;
        }

        .comparison-table-feature-desc {
            font-size: 12px;
            line-height: 14px;
        }
    }

    @media (width <= 500px) {
        .comparison-table th,
        .comparison-table th.sticky {
            font-size: 13px;
            line-height: 14px;
        }

        .comparison-table th.comparison-table-feature,
        .comparison-table td.comparison-table-feature {
            padding-left: 8px;
        }

        .comparison-table td {
            padding: 4px 2px;
            border-top: 1px solid hsl(209deg 40% 40% / 30%);
            line-height: 18px;
        }

        .comparison-table td.comparison-value-positive,
        .comparison-table td.comparison-value-warning,
        .comparison-table td.comparison-value-negative {
            font-size: 13px;
            line-height: 14px;
        }

        .comparison-value-positive::after,
        .comparison-value-warning::after,
        .comparison-value-negative::after {
            display: none;
        }
    }
}

/* No header to accommodate on self-hosted realms,
   so keep sticky headers at the top of the viewport. */
.zulip-plans-comparison.is-self-hosted-realm {
    .comparison-table {
        th,
        td.subheader.comparison-table-feature {
            top: 0;
        }
    }
}
